package 剑指offer;

import java.util.Scanner;

/** 

* @author ：soulstones
* @version ：2019年9月30日 下午9:58:07 
* @Description：
* 
汇编语言中有一种移位指令叫做循环左移（ROL），现在有个简单的任务，就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S，请你把其循环左移K位后的序列输出。例如，字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果
，即“XYZdefabc”。是不是很简单？OK，搞定它！
*/
public class A43左旋转字符串 {

	public static String LeftRotateString(String str, int n) {
		int len = str.length();
		 //左旋字符串（循环左移字符串）：左移串长length位,后面的字符串就没有动他和原来一样，所以正真需要左移的是n % str.length()位
		int trueSet = n % len;
		if (n == 0 || len <= 1)// 空串和单字符串左移无意义
			return str;
		
		//subString(n):   简单，从头到n的字段都不要了，只保留n过后的字段
				//"unhappy".substring(2) returns "happy"
				// "Harbison".substring(3) returns "bison"
		 		//"emptiness".substring(9) returns "" (an empty string)
		//subString(n,m)  只保留从（n,m）之间的字段
				//	 "hamburger".substring(4, 8) returns "urge"
				// "smiles".substring(1, 5) returns "mile"
		 

		return str.substring(n) + str.substring(0, n);
	}
public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	String s = scanner.next();
	int n = scanner.nextInt();
	System.out.println(LeftRotateString(s, n));
}
}
